package com.juli.school.utils.self;

import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;

/**
 * @Description: 日期时间工具类
 * @author gaoxiang
 * @date 2017年10月2日 下午10:32:03
 */ 
public class DateTimeUtils {
	
	public static String ymd = "yyyy-MM-dd HH:mm:ss";
	
	/**
	 * @Description: 获取当前时间戳
	 * @author gaoxiang
	 * @date 2017年10月2日 下午11:06:12
	 */
	public static String getNow() {
		return DateFormatUtils.format(new Date(), ymd);
	}
	
	/**
	 * @Description: 获取时间描述字符串
	 * @author gaoxiang
	 * @date 2017年10月2日 下午10:31:20
	 */
	public static String getTimeDesc(String date) {
		// 获取相减后天数
		long betweenTime = 0;
		try {
			Date beginDate = DateUtils.parseDate(date, ymd);
			Date endDate = new Date();
			// 获取相减后天数
			betweenTime = (endDate.getTime() - beginDate.getTime());
		} catch (Exception e) {
			e.printStackTrace();
		}
		// 小于 1分钟 返回 1分钟
		if (betweenTime < 60 * 1000) {
			return "1分钟";
			// 大于等于 1分钟 小于1小时 返回 N分钟前
		} else if (betweenTime >= 60 * 1000 && betweenTime < 60 * 60 * 1000) {
			return betweenTime / (60 * 1000) + "分钟前";
			// 大于等于 1小时 小于1小时 返回 N分钟前
		} else if (betweenTime >= 60 * 60 * 1000 && betweenTime < 24 * 60 * 60 * 1000) {
			return betweenTime / (60 * 60 * 1000) + "小时前";
			// 大于等于 1天 小于15天 返回N天前
		} else if (betweenTime >= 24 * 60 * 60 * 1000 && betweenTime < 15 * 24 * 60 * 60 * 1000) {
			return betweenTime / (24 * 60 * 60 * 1000) + "天前";
			// 大于等于 1天 小于15天 返回N天前
		} else {
			return date;
		}
	}

	public static long betweenDays(String inputTime) {
		// 获取相减后天数
		long betweenTime = 0;
		try {
			Date beginDate = DateUtils.parseDate(inputTime, ymd);
			Date endDate = new Date();
			// 获取相减后天数
			betweenTime = (endDate.getTime() - beginDate.getTime())/(24 * 60 * 60 * 1000);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return Math.abs(betweenTime);
	}
}
